package cn.ware.house.interfaces.mapper.prodctmapper;

import cn.ware.house.interfaces.entity.goods.ProductCategory;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@Mapper
public interface ProductCategoryMapper {
    // 根据分类编号查询商品分类信息（包含子分类信息，构建树形结构）
    ProductCategory selectProductCategoryByIdWithChildren(Integer id);

    // 查询所有顶级（根）商品分类信息（没有父分类的分类）
    List<ProductCategory> selectRootProductCategories();

    // 根据父分类编号查询子分类信息列表
    List<ProductCategory> selectChildrenCategoriesByParentId(Integer parentId);

    // 插入商品分类信息（包含设置父分类关联）
    int insertProductCategory(ProductCategory productCategory);

    // 根据分类编号更新商品分类信息
    int updateProductCategoryById(ProductCategory productCategory);

    // 根据分类编号删除商品分类信息（同时处理关联的子分类，例如级联删除等，可根据业务规则定）
    /**
     * 批量删除商品分类记录。
     *
     * @param categoryIds 要删除的商品分类编号（id）数组。
     * @return 受影响的行数，即实际删除的记录数。
     */
    int deleteProductCategoriesByIds(List<Integer> categoryIds);
}